/*
 * LookingGlassDeclAst.h
 *
 *  Created on: 26 Nov 2010
 *      Author: kn308
 */

#ifndef LOOKINGGLASSDECLAST_H_
#define LOOKINGGLASSDECLAST_H_

#include <MAlice/Ast/StatementAst.h>
#include <MAlice/Ast/TypeAst.h>
#include <MAlice/Ast/ListAst.h>
#include <MAlice/Ast/PointerTypeAst.h>

namespace MAlice
{

class LookingGlassDeclAst: public StatementAst
{
private:
	string   mName;
	TypeAst* mGlassType;
	ListAst* mBody;

public:
	LookingGlassDeclAst(location loc, const string& name, PointerTypeAst* glassType, ListAst* body);
	virtual ~LookingGlassDeclAst();
	virtual llvm::Value* generate();
};

}

#endif /* LOOKINGGLASSDECLAST_H_ */
